// Generated from D:/IDEAWork/play/private/yu-gi-oh/src/main/resources/antlr4\EffectParser.g4 by ANTLR 4.8
package com.zfast.yugioh.antlr4.effect;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link EffectParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface EffectParserVisitor<T> extends ParseTreeVisitor<T> {
	/**
	 * Visit a parse tree produced by the {@code OrgExpr}
	 * labeled alternative in {@link EffectParser#exprExt1}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOrgExpr(EffectParser.OrgExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code If}
	 * labeled alternative in {@link EffectParser#exprExt1}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitIf(EffectParser.IfContext ctx);
	/**
	 * Visit a parse tree produced by {@link EffectParser#orgExpression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOrgExpression(EffectParser.OrgExpressionContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Select}
	 * labeled alternative in {@link EffectParser#coreAct}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSelect(EffectParser.SelectContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Update}
	 * labeled alternative in {@link EffectParser#coreAct}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitUpdate(EffectParser.UpdateContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Object}
	 * labeled alternative in {@link EffectParser#aimObject}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitObject(EffectParser.ObjectContext ctx);
	/**
	 * Visit a parse tree produced by the {@code PipeObject}
	 * labeled alternative in {@link EffectParser#aimObject}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPipeObject(EffectParser.PipeObjectContext ctx);
	/**
	 * Visit a parse tree produced by the {@code AsObject}
	 * labeled alternative in {@link EffectParser#aimObject}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAsObject(EffectParser.AsObjectContext ctx);
	/**
	 * Visit a parse tree produced by the {@code SetObject}
	 * labeled alternative in {@link EffectParser#aimJudge}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSetObject(EffectParser.SetObjectContext ctx);
	/**
	 * Visit a parse tree produced by the {@code SetObjectBlank}
	 * labeled alternative in {@link EffectParser#aimJudge}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSetObjectBlank(EffectParser.SetObjectBlankContext ctx);
	/**
	 * Visit a parse tree produced by the {@code From}
	 * labeled alternative in {@link EffectParser#targetObjectArrys}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFrom(EffectParser.FromContext ctx);
	/**
	 * Visit a parse tree produced by the {@code FromBlank}
	 * labeled alternative in {@link EffectParser#targetObjectArrys}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFromBlank(EffectParser.FromBlankContext ctx);
	/**
	 * Visit a parse tree produced by the {@code To}
	 * labeled alternative in {@link EffectParser#aimObjectArrys}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitTo(EffectParser.ToContext ctx);
	/**
	 * Visit a parse tree produced by the {@code ToBlank}
	 * labeled alternative in {@link EffectParser#aimObjectArrys}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitToBlank(EffectParser.ToBlankContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Where}
	 * labeled alternative in {@link EffectParser#targetJudge}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWhere(EffectParser.WhereContext ctx);
	/**
	 * Visit a parse tree produced by the {@code WhereBlank}
	 * labeled alternative in {@link EffectParser#targetJudge}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWhereBlank(EffectParser.WhereBlankContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Limit}
	 * labeled alternative in {@link EffectParser#limitStr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitLimit(EffectParser.LimitContext ctx);
	/**
	 * Visit a parse tree produced by the {@code LimitBlank}
	 * labeled alternative in {@link EffectParser#limitStr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitLimitBlank(EffectParser.LimitBlankContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_SLASH}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_SLASH(EffectParser.Operator_SLASHContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_COLON}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_COLON(EffectParser.Operator_COLONContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_GTE}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_GTE(EffectParser.Operator_GTEContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_NEQ}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_NEQ(EffectParser.Operator_NEQContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_Expr1}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_Expr1(EffectParser.Operator_Expr1Context ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_Expr0}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_Expr0(EffectParser.Operator_Expr0Context ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_GT}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_GT(EffectParser.Operator_GTContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_Expr2}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_Expr2(EffectParser.Operator_Expr2Context ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_Expr4}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_Expr4(EffectParser.Operator_Expr4Context ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_LTE}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_LTE(EffectParser.Operator_LTEContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_LT}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_LT(EffectParser.Operator_LTContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_ASTERISK}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_ASTERISK(EffectParser.Operator_ASTERISKContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_MINUS}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_MINUS(EffectParser.Operator_MINUSContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_PAREN}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_PAREN(EffectParser.Operator_PARENContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_PLUS}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_PLUS(EffectParser.Operator_PLUSContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Operator_EQ}
	 * labeled alternative in {@link EffectParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOperator_EQ(EffectParser.Operator_EQContext ctx);
	/**
	 * Visit a parse tree produced by the {@code SetExpr}
	 * labeled alternative in {@link EffectParser#set_expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSetExpr(EffectParser.SetExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code WhereExprOr}
	 * labeled alternative in {@link EffectParser#where_expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWhereExprOr(EffectParser.WhereExprOrContext ctx);
	/**
	 * Visit a parse tree produced by the {@code WhereExpr_PAREN}
	 * labeled alternative in {@link EffectParser#where_expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWhereExpr_PAREN(EffectParser.WhereExpr_PARENContext ctx);
	/**
	 * Visit a parse tree produced by the {@code WhereExprObject}
	 * labeled alternative in {@link EffectParser#where_expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWhereExprObject(EffectParser.WhereExprObjectContext ctx);
	/**
	 * Visit a parse tree produced by the {@code WhereExprAnd}
	 * labeled alternative in {@link EffectParser#where_expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWhereExprAnd(EffectParser.WhereExprAndContext ctx);
}